#pragma once
#include <string>
#include "json.h"

using namespace std;
namespace utility{
namespace json{

class Parser
{
public:
    Parser();
    ~Parser();   

    void load(const string & str);

    Json parse();
    
private:
    void skip_white_space();
    char get_next_token();

    Json parse_null();
    Json parse_bool();
    Json parse_number();
    string parse_string();
    Json parse_array();
    Json parse_object();

private:
    int m_idx;
    string m_str;

};

}
}